package core.exceptions;

public enum ExceptionFormat {

	LEXICAL("Lexical Error at line %d and column %d. There is no pattern for the lexem '%s'"),
	
	UNDECLARED_VARIABLE_PROCEDURE("Variable or Procedure '%s' at line %d and column %d was not declared."),
	DUPLICATED_VARIABLE("Semantic error at line %d and column %d. Variable '%s' was already declared at line %d and column %d."),
	DUPLICATED_IMPORT("Semantic error at line %d and column %d. Import '%s' was already declared at line %d and column %d."),
	DUPLICATED_PROCEDURE("Semantic error at line %d and column %d. Procedure '%s' was already declared at line %d and column %d."),
	CANNOT_APPLY_NOT_OPERATION("Semantic error at line %d and column %d. Not operation cannot be applyed for this factor."),
	INCOMPATIBLE_ASSIGNMENT("The types %s and %s, at lines and columns %d, %d and %d, %d respectively, are incompatible for an assignment statement."),
	INCOMPATIBLE_EXPRESSIONS("The expressions at lines and columns %d, %d and %d, %d respectively, are incompatible for the specified relational operation.");
	
	private String format;
	
	ExceptionFormat(String format) {
		this.format = format;
	}
	
	public String getFormat() {
		return format;
	}
	
}
